/*
指针和数组
利用指针访问数组中的元素
 p++;
 指针和函数
 1、值传递
 2、地址传递
*/
#include <stdio.h>
#include <iostream>
#include <math.h>
using namespace std;
void swap01(int a, int b){
    int temp = a;
    a = b;
    b = temp;
}
void swap02(int *p1, int *p2){
    int temp = *p1;
    //将p1指针指向的地址的值更改为*p2所代表的值
    //简介更改了b的值
    *p1 = *p2;
    *p2 = temp;
}
void bubblesort(int * arr, int len){
    for(int i = 0;i<len-1;i++){
        for(int j = 0;j<len-i-1;j++){
            if(arr[j]>arr[j+1]){
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}
void printarray(int *arr, int len){
    for (int i = 0;i<len;i++){
        cout<<arr[i]<<endl;
    }
}

int main()
{
/*
 int arr[10]  = {1,2,3,4,5,6,7,8,9,10};
 cout <<"第一个元素为："<<arr[0]<<endl;
 int *p = arr;//arr就是数组首地址
 cout<<"第一个元素："<<*p<<endl;
 //p为数组地址
 cout<<"第二个元素："<<p[1]<<endl;
 p++;
 cout<<"第二个元素："<<*p<<endl;
 int a = 10;
 int b = 20;
 //值传递
 swap01(a,b);
 //地址传递
 //地址传递可以修饰实参
swap02(&a, &b);
cout<<"a="<<a<<", b="<<b<<endl;

int arr2[10] = {4,3,6,9,1,2,10,8,7,5};
int len = sizeof(arr2)/sizeof(arr[0]);
bubblesort(arr2, len);
printarray(arr2, len);
*/



// int *items[1];  // [指针,]
// for(int i = 0;i<4;i++){
//     items[i] = NULL;     // 在元组的源码中NULL会换成是元素的内存地址。
// }
// for (int i = 0;i<4;i++){
//         cout<<items[i]<<endl;
//     }
}